import { defineStore } from "pinia";

// 第一个参数是id值推荐和模块（文件）名一致，第二个参数是一个对象，对象中是真正存储数据的地方
export const useCountStore = defineStore('count',{
    // 真正存储数据的地方，需要写成一个函数，并且这个函数需要返回一个对象
    state(){
      return {
        sum:10
        // 可以初始化数据，从本地存储中获取数据
        // talkList:JSON.parse(localStorage.getItem('talkList') as string) || []

      }
    },
    // actions（对象）里面放置的是一个一个的方法（函数），用于响应组件中的“动作”
    //主要封装一些复用的逻辑，比如：发请求、修改数据
    actions:{
        increment(value:number){
        console.log('increment被调用了',value)
        if( this.sum < 100){
            // 修改数据（this是当前的store），和在组件中useStore()返回的对象是同一个
            this.sum *= value
        }
        }
    },
    getters:{
      // 原始写法：可以传入state参数
      // bigSum(state){
      //   return state.sum * 10
      // }
  
  
      bigSum:state => state.sum * 10,
  
      //不传入state参数，直接使用this也是能拿到state，并且用this就不能使用箭头函数
    //   upperSchool():string{
    //     return this.school.toUpperCase()
    //   }
    }
  })

